perm filename DEBUG.3[AID,LSP] blob
sn#635632 filedate 1978-11-10 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 DEBUGGING FUNCTION
C00004 00003 (DECLARE (SPECIAL STEPPING? %CE))
C00012 ENDMK
C⊗;
;;;DEBUGGING FUNCTION
;;; PRINTS LAST S-EXPRESSION EVALUATED AND WAITS FOR CHARACTER
;;; INPUT. COMMANDS ARE:
;;;
;;; D - MOVE DOWN THE STACK. (BACKWARDS IN TIME - I.E. NEXT TO
;;; LAST EXPRESSION EVALUATED)
;;; U - MOVE UP THE STACK.
;;; T - JUMP BACK TO THE TOP OF THE STACK.
;;;
;;; B - BREAK IN THE ENVIRONMENT OF THE CURRENT EXPRESSION BEING
;;; EXAMINED. THIS IS USEFULL FOR LOOKING AT VALUES OF
;;; VARIABLES IN THIS ENVIRONMENT. TYPE $P TO CONTINUE.
;;; P - PRINT THE CURRENT S-EHPRESSIOJ IN ITS EJTIRETY.
;;; Q % QUIT THA FUNCTION DEBUG.
;;; R - FORCE THE CURRENT EHPRESSIOHA$yαJ⊗αJU∀rd↓PS[71⊂L
9:2∧4z$¬$
)_dL
I→tb∧→hB¬$λYbh'73@1 ∧`iRiP#'T⊂ P+⊂f*bP
+d$aR⊂$iP⊃hεALUATED TO BE RETURNED.
α;;8ε∪ε@4A→∪↔∀@E$D↓↓+(AI
P⊗⊗αh∀e,~HU~¬IλR∧≥X*$,UDλUE¬(Z5≤Lye`hSαnna∀h( _H⊂(
tr5 ~β"P'∃fa"iλ⊗'⊗⊂∀)"abQb)P H!gffPg"⊗⊂∃$"g⊂∃$ jεB≥]]DBacffPe"⊂+Rd BE EHEAQTED "N"TIMES. α;;8ε∩`=αiαBJLrQαεt20~∧βs@⊂⊂βKEMAN@ &@4⊂∩∧Q⊃π2
∩∃↓λxT`*∀Q1I≠λ⊃⊃(*cTTH∧@
(@ π1β%
@ U→⊃A$A +∞A
∃%∪
JI%4P1"∩,~2εJ*↓"NB,~&ε1¬~RεB∧J0∀oh (bTTFBα ∀Q⊃
+≤αα∩,*Xrα≤~(u~Q$ααα∧∧ααEλ∧Shtλ∧ ⊂OIH
)HA¬βπ,[!>LrR-*4∧9⊂4@⊂∃'h⊗h∪βINDER @≥,jα-%∀hPα(λ∧∧λ
⊂i@dεD ((8
@G¬%≡Mβ $4λHI↓↓↓αBε 4D¬αU∃8ZBαDβSu*Yh
⊂*(h ∀JTP∀)Th∧ATUS U@+=→∪≥↔LRR4PH%↓↓α↓"J⊗αJU∀r¬λ∃∀~∧⊂
%∃ εE∧BP⊂⊂∀
)b`∀Q P@∨∪9)⊗IαB⊗Jεd2Jε6*α0∀LE∃⊂hPα"(∧∧λ
∪j$∀∪r)J⊃4@¬
Q0
*T'⊂∪j∀,VibU* g#KU))bU∀TTFB∧@P⊂λ∀⊂ ∩ETURNO')β
⊗S'πI ≡⊗ jVA∃m~>JJJI%$∀PJ~&: jNRε∃ 4(∀∧ααα¬λ4`9β"⊂∀
¬Q (AAADDR POILTER$@G +∞B~(∩∩@@@Q'Q"A!∨%→)∧α↓"∞ε%⊃αBy→e$
%∀¬$⎇¬Z∧lLhHU∩¬ y∀e$Z!∩HhαB"$∧λ
α
85∀
p3UλZH
⊃*@ f#)⊂dbP∀⊂`b)∀'`g*⊃i∀TTCE (GLεA
∪9λ['$
JQ%JH4(∀∧ααα¬
4-¬∀ e,@0Q4Dελ#"A~∀R3JEλ∪⊂)XQ⊂ ¬
∀R3IH5Q3∧
∀R3IH3Qu ¬(β"A⊃(λλ∧∧λ
∀
)3U¬
q5∀$∧0q(¬λp1⊃
$λ⊃5H→⊃PP)X(⊂∪i→β*"i
TTTTCE 3
∩@@@@@PR~∀∩@@@@!)β%!I∩R
∀%%ββ 1≠⊂≡@hP%↓↓α↓↓"N-"Eα∞D
I↓"∀*ε∩∞A⊃%$∀PJ0∀⎇(X∀ @ ¬∧Pλ⊂⊂⊂∀⊂g`∞D
λ ((MR (EQ CHAR ASAII 12)) (EQ CHAR (ASC@∪∩b`∃%JH4(∀∧ααα∧∧αDpπP)⊃`b&'SβP ∩R4⊂∩@@@@@P!→+≠¬∃% Aπ!β$R~(∩@@@@@@QM ∩E∧rV&
-⊃↓!4¬αR∧jYT∧
$ε∪∩Jλ9∧
∩∃⊃P@!(λλ∧∧λλ
λyh⊂Q(_⊃∪sj¬*#"A∀λλλ∧∧λ
∪(YαhP!R i⊂∪J ∧ /D))~∀$@@@@@@Aπ=_
Q!⊂JBλIphPα"(∧¬λ∧#)⊂d¬E (EP
β→→%β≠
Qπβ H@Q4
2
Jj∃αB|J0∃$X
%∃ εE∧BDP⊂∀⊃hεALFRAME (CADR (E@-¬→¬%β5
A!∨%_
Q¬JI$4λHI↓↓↓Eα6&: ↓"∞ε%⊃↓"⊗4
2
Jj∃αB|J2R⊗⊂¬∩Hh!⊃⊂Jα¬λ4%$¬∧-P3⊃J(31(
p∧g*
TTTFB∧@ ((@∨$Q≥∨(αα~Jεl)$4!⊃∩αα∧∧ααα iu"¬8HU¬∧α3Qgu εE∧BP⊂⊂⊂λ⊂⊂∀'∪h∧ (MEH"@!βββ ⊃$A
∀
6∃$hP$$⊃∀αα~α⊃5H→⊂∧'gRP λOOKER HMH∂εBαI%%$hP$%↓α↓"∞yh@hPα"(∧∧λ
⊃J(31(¬
q0
(H! aeKh ∂INTARS
λ ↓ (CONS POILTEB@¬βπ⊗5!∨β≥Q%&R4⊂∩α∩$A!>LrR-!Q HHα"(
p∧g*
TTTTJFA∧DJ∀∨⊂'∃da"iλ_TP∀∀bj(@∪αUMBER 0))
∩∩ Q!%∪9(@NQe∨ ∃α
∩∃αε ∧¬$DTλ$m∃∪s$ qH∃ λαP ∪TAC@⊗R$RRR~(∩@@@@@@Q5⊂⊗E∧~"εIα9"U↓|εRJHβ"B$∧λλλ∧∧λ⊂siHα⊂∀!⊂a`-PMIN@)∃%&@QM ∩E¬α6&:αHU⊂HαB"!⊃ ∧P⊂
!`i @¬βπ⊗αjB>εu"⊗JMHh ⊂Hα""!∀λ⊂P(eP
@!=∪⊂~R-∩L4λHH$$∀∧αD≤J λλ ae@-PO@∪≥Q%&R$R~(HI↓↓↓α↓!!y∧rV ,(Z"β
∀¬¬≤-J⊂λ @*fa"T⊂_∀TCE ((PRINT '(YLπ ∃α
∩∃αε ∧¬$DT
D`:λ∪qD
⊂∧"P∀h∧ACK)))))
∩@@@@@ Q≠≠DAπ"
⊃↓:α∩(¬@tTTPβE (PRINT ⊃π¬ ∩IαB⊗@4→He∀XT¬∧|α3UλZJ**!Q@∧P⊂λ⊂⊂⊂⊂
π@≡AIβ →=_∞A∃⊃P@!(λλ∧∧λ
∀∪bf`⊃↓∞"ε⊂∧α:D$¬v∩J⊃Q Jα∧∧ααα¬λU (3λ eλTQ0)4⊃⊃0JXh⊃∀CE (@πβ ⊃$@@"-2ε"~α(∀l*λ∧∪i→β*"i
TTPεBα (PRINT (CADDR (ET¬β→
Iβ⊂⊗∃¬α0≤LhHU∩J∃⊃P@!(λλ∧∧λλ
λyh⊂ "Pb OOP))
⊂Q5⊂⊗E∧~"εIα9"E↓|ε∩JJ¬
$-∃0 'λ⊃bg"b"a*QTTFEαP⊂⊂⊂λ⊂⊂λ(MEH"A
⊃β$@≤Q(@←β!%$Q!∩αα∧∧αααλ∧q*J(⊂λ'RdεTER TGP-POANTER BACK%@OIH
)I&A:La%$∀PI↓↓↓α↓↓! XTm
λ9∧
∩∧q∧
αβxj%⊃ B(∧∧λλλ∧¬⊂3Q∧¬∃Q4I_T∧P∪T"Vbk⊂d*`j⊃FA∧DBP⊂⊂⊂ aj`∩REH
(~(∩∩α@@@Oa!%≥~&>gu⊂hP⊃∀ααα¬λe∀
JZ$rαλ8∀%∩¬λU (3⊃TH→1(∀ Y3U⊃*%*#"A⊃ (λ∧∧λ
⊃*@ f⊂∀⊂`b")λ∀"k S#) fQP('dS*"i∧JTTTTCEP⊂λ⊂⊂⊂∀
&bfhH!d iλ∪P)y∀TFB∧P⊂⊂λ⊂⊂⊂∀⊂g`∞D
λ ↓(λVERIFY 'FORCE
↓ 'RETURLλ
∀∩$∩@O
I∨∩~∀$∩∩@O
+%%9(~∧∩$∩@Oa!%≥~&.→zH4(⊃∀αE$X*¬∀J⊃Q HJ¬
¬∀Lh4α?cVALFRAME POINTER)))
(GO READLOOP))
((MEMQ CHAR '(S /s))
(SPRINTER (CADDR (EVALFRAME POINTER)))
(GO READLOOP))
((EQ CHAR '?)
(PRINT '(OPTIONS ARE: D U B T R C Q P OR ?))
(GO READLOOP))
((PRINC '| ??? |) (GO READLOOP)))
(AND (> NUMBER 1) (SETQ NUMBER (1- NUMBER)))
(AND (> NUMBER 0) (GO NOREAD))
(GO PRINT)))
;;;READS A CHARACTER AND RETURNS THAT CHARACTER AS EITHER A
;;; NUMBER OR A SYMBOL.
(DEFUN READCH2 NIL
(PROG (X)
(SETQ X (TYI))
(RETURN (COND ((LESSP 47. X 58.) (- X 48.))
((= X 194.) 'I)
((ASCII X))))))
;;;TO GET AROUND JONL'S WEIRD SPELLING
(SETQ BACKTRACE 'BAKTRACE)
(DEFUN BT #ARGS
(PROG (#SPACES BTLIST )
(SETQ
#SPACES 0.
BTLIST (BAKLIST))
(COND ((AND (BOUNDP STEPPING?)
STEPPING?)
(SETQ BTLIST
(MAPCAN (FUNCTION (LAMBDA(Q)
(COND ((MEMQ (CAR Q)
'(EVALHOOK HOOK1 HOOKER))
NIL)
(T (NCONS Q))))) BTLIST))))
(DO NIL
((OR (NULL BTLIST) (EQ (CAAR BTLIST) 'BT)))
(SETQ BTLIST (CDR BTLIST)))
(AND (= #ARGS 1)
(DO ((I (ARG 1)(1- I))(LIST BTLIST (CDR LIST)))
((NULL LIST) T)
(AND (= I 0.)(RPLACD LIST NIL)(RETURN T))))
(TERPRI)
(MAPC
(FUNCTION (LAMBDA (X) (DO I #SPACES (1- I) (= I 0.) (TYO 32.))
(SETQ #SPACES (COND ((< #SPACES 30.)
(1+ #SPACES))
(T 0.)))
(PRINC (CAR X))
(TERPRI)))
(NREVERSE (CDR BTLIST)))
(RETUBN '*)))
(DEFUN FERIFY #ARGS
(@ π1β%
@!
∪1≥U~A∩R$~∀@@@@@@!)%!I∩R~∀@@@@@Q ≡PQα@D\@Pb,A∩RR$@PP|↓∩@GβI∂&RAPR@Q↓I∪⊂~
αBεJ≥∧I%%↓E"f=↓≠⊃9%$hQ↓↓↓α↓↓↓"$*JBJJH4)↓α↓↓↓↓αBBJ&t→↓≡RMα∃=αL*M=α⎇⊃=α~{Q$4)α↓↓↓↓α↓"6⊗m ↓"J,
⊃%↓:Beαf-→αfVαα>-α≥*J∃αL)αf⊗
αf⊗ε@αJ&≡E!α~&t)%%hQ%%%JI$4(